草庐IT

TypeScript 模块

全部标签

javascript - 在node.js中,如何将模块的所有事件转发给另一个

假设我正在创建自己的模块,它位于“net”模块之上。我的模块有自己的事件,但也允许客户端监听由tcp连接发出的网络事件:mymod.on('myevent',...);//myeventmymod.on('connect',...);//neteventmymod.on('end',...);//netevent现在我正在做以下事情...tcp.on('connect',function(){self.emit('connect');});tcp.on('end',function(){self.emit('end');});...我有没有更惯用的方法来简单地将所有事件(或事件的子集)

javascript - 在不同模块之间调解和共享数据

我只是想了解事件驱动的JS,所以请多多包涵。我的应用程序中有不同种类的模块。有些只是封装数据,有些则管理DOM的一部分。有些模块依赖于其他模块,有时一个模块依赖于多个其他模块的状态,但我不希望它们直接通信或将一个模块传递给另一个模块只是为了方便访问。我试图创建最简单的场景来说明我的问题(当然,实际的模块要复杂得多):我有一个只公开一些数据的数据模块:vardataModule={data:3};有一个configModule公开了用于显示该数据的修饰符:varconfigModule={factor:2};最后有一个displayModule组合并呈现来自其他两个模块的数据:vardi

javascript - 如何在 RT 上添加插件和使用一些外部模块/文件

我有node.js应用程序/模块,它工作正常,具有插件概念,即我的模块就像代理一样,具有额外的功能,例如添加新功能到开箱即用的功能(方法)。为此,您需要执行以下操作:clonemyapplicationcreatenewfolderwhichiscalledextenders(insidemyapp)在这个文件夹中你应该提供两个文件extend.jswithyourlogicasfunctions/methodsextend.jsonwhichdefineyourAPI(toknowwhichfiletoinvoke)注意:JS&JSON文件名必须相同例如,假设这是您的extend.j

javascript - 找不到模块 chai 尽管它存在于节点模块文件夹中

我尝试使用以下命令安装chai。npminstall--save-devchai然后我使用以下导入运行我的单元测试类。import{assert}from'chai';import{expect}from'chai';它抛出以下错误。test\main\MessageBroker.spec.ts(3,22):errorTS2307:Cannotfindmodule'chai'.[05:38:45][Typescript]TypeScripterror:test\main\MessageBroker.spec.ts(3,22):errorTS2307:Cannotfindmodule'c

javascript - Typescript 中的工厂函数使用和不使用 new 关键字声明文件

以下代码将在ES5中创建一个工厂函数:functionMyClass(val){if(!(thisinstanceofMyClass)){returnnewMyClass(val);}this.val=val;}可以使用或不使用new关键字调用此函数:vara=newMyClass(5);varb=MyClass(5);这在Typescript中工作正常,但是我不知道如何使用merging创建声明文件描述了这两种行为。有办法做到这一点吗? 最佳答案 interfaceMyClass{val:{};}interfaceMyClassC

javascript - 如何使用 TypeScript 编译器 (TSC) 解析 Node.js ES6 (ESM) 模块。 TSC 不发出正确的文件扩展名

我正在尝试将我的TypeScript项目转换为JavaScript,但是,似乎有些不对劲。我将项目配置为通过"module":"ES6"解析为ES6模块(又名ESM)设置,但不能解决问题。这就是我的tsconfig.json配置如下:{"compilerOptions":{"module":"es6","target":"es6","lib":["es6"],"sourceMap":true,}}使用一对模块的测试用例:我使用两个模块编写了一个简单的测试用例senario。第一个模块—module1.ts—只导出一个常量,如下所示:>exportconsttestText="Itwor

javascript - typescript 路径映射未在 Node 应用程序中翻译

目前在node.js应用程序中使用typescript。我已经编译了我的应用程序,并且正在使用typescript'spathmappingfeature.'api/*'应该在根文件夹中查找。在开发工作中使用以下内容:nodemon--watchsrc-ets,tsx--exects-node-rtsconfig-paths/register--disableWarnings./src/index.tstsconfig-paths/register允许正确翻译require并且ts-node将正确执行/运行应用程序。现在,当我转向生产时,问题就来了。过去在生产中,我只是在文件夹上运行t

javascript - vue 2、typescript、mocha 和 karma 的代码覆盖率

我们将Vue2与Typescript和webpack3结合使用。Vuex用于状态管理。我们的测试与Karma以及Mocha、Sinon、Expect和Avoriaz一起运行。一切都很好,但我尝试使用Istanbul获得代码覆盖率,以更好地直观表示缺少哪些测试。文件夹结构的小型表示来源组件分享按钮按钮.vue按钮.tsindex.ts...测试单位组件分享按钮按钮.spec.test.tskarma.conf.jskarma.coverage.jsindex.ts...按钮.vuebutton.tsimport{Component,Prop,Vue}from'vue-property-d

javascript - 是否可以在 TypeScript 中使构造函数静态化?

我阅读了TypeScript中的静态构造函数,并亲自尝试了它,但它不起作用。我想通过它初始化一个静态变量(该方法只能调用一次)但是我得到以下编译器错误:Error:'static'modifiercannotappearonaconstructordeclaration.代码:exportclassDataManagement{privatestaticsubjects:string[];staticconstructor(){DataManagement.subjects=[];//somemorecodehere}} 最佳答案

javascript - 如何从 JavaScript 模块模式中的私有(private)函数中调用公共(public)函数

如何从JavaScript模块模式中的私有(private)函数调用公共(public)函数?例如,在下面的代码中,varmyModule=(function(){varprivate1=function(){//Howtocallpublic1()here?//this.public1()won'twork}return{public1:function(){/*dosomething*/}}})();这个问题有人问过twicebefore,每个都有不同的可接受答案。在返回之前保存对返回对象的引用,然后使用该引用访问公共(public)方法。参见answer.在闭包中保存对公共(pu